package com.tanhua.autoconfig.template;

import com.baidu.aip.face.AipFace;
import com.tanhua.autoconfig.properties.AipFaceProperties;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.HashMap;

public class AipFaceTemplate {

    @Autowired
    private AipFaceProperties properties;

    /**
     * 判断图片中是否包含人脸：
     *    返回值：true-包含，false-不包含
     *    参数：图片的访问URL
     */
    public Boolean detect(String image) {
        // 初始化一个AipFace
        AipFace client = new AipFace(properties.getAppId(), properties.getApiKey(), properties.getSecretKey());

        // 可选：设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        // 调用接口,判断图片中是否包含人脸（图片有多种表现形式）
        // URL地址，图片也可以通过字符串表示
        String imageType = "URL";

        // 人脸检测
        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("face_field", "age");
        options.put("max_face_num", "2");
        options.put("face_type", "LIVE");
        options.put("liveness_control", "LOW");

        //map集合
        JSONObject res = client.detect(image, imageType, options); //调用百度
        Integer error_code = res.getInt("error_code");
        //error_code = 0 ；正常包含人脸
        //error_code ！= 0 ；不包含人脸或者配置信息错误
        //System.out.println(res.toString(2));
        return error_code==0;
    }
}
